package com.ruoyi.system.service;

import com.ruoyi.system.domain.dto.AddDefTeamMemberDTO;
import com.ruoyi.system.domain.dto.DefTeamMemberImportDTO;
import com.ruoyi.system.domain.dto.UserWithDrillDTO;
import com.ruoyi.system.domain.vo.TeamUserDetailVO;
import com.ruoyi.system.domain.vo.UserNoRoleVO;
import com.ruoyi.system.domain.vo.UserWithDrillVO;
import java.util.List;
import com.ruoyi.system.domain.DefTeamMember;

/**
 * 队伍队员关系Service接口
 * 
 * @author ruoyi
 * @date 2024-10-09
 */
public interface IDefTeamMemberService 
{
    /**
     * 查询队伍队员关系
     * 
     * @param teamId 队伍队员关系主键
     * @return 队伍队员关系
     */
    public DefTeamMember selectDefTeamMemberByTeamId(Integer teamId);

    /**
     * 查询队伍队员关系列表
     * 
     * @param defTeamMember 队伍队员关系
     * @return 队伍队员关系集合
     */
    public List<DefTeamMember> selectDefTeamMemberList(DefTeamMember defTeamMember);

    /**
     * 新增队伍队员关系
     * 
     * @param defTeamMember 队伍队员关系
     * @return 结果
     */
    public int insertDefTeamMember(AddDefTeamMemberDTO defTeamMember);

    /**
     * 修改队伍队员关系
     * 
     * @param defTeamMember 队伍队员关系
     * @return 结果
     */
    public int updateDefTeamMember(AddDefTeamMemberDTO defTeamMember);

    /**
     * 批量删除队伍队员关系
     * 
     * @param teamIds 需要删除的队伍队员关系主键集合
     * @return 结果
     */
    public int deleteDefTeamMemberByTeamIds(Integer[] teamIds);

    /**
     * 删除队伍队员关系信息
     * 
     * @param teamId 队伍队员关系主键
     * @return 结果
     */
    public int deleteDefTeamMemberByTeamId(Integer teamId);

    List<UserWithDrillVO> userWithDrill(UserWithDrillDTO defTeamMember);

    TeamUserDetailVO teamUserDetail(Long userId);

    String importData(List<DefTeamMemberImportDTO> userList, Long roleId);

    List<UserNoRoleVO> userNoRole();

    int deleteDefTeamMemberByUserId(Integer userId);
}
